Non gesture controllers have no means to collaborate with other
controllers, thus should be considered standalone entities. It makes
no sense to propagate any further if scroll/key controllers handled
the event.
if (controller_phase == phase)
handled |= gtk_event_controller_handle_event (data->controller, event);
+
+ /* Non-gesture controllers are basically unique entities not meant
+ * to collaborate with anything else. Break early if any such event
+ * controller handled the event.
+ */
+ if (handled && !GTK_IS_GESTURE (data->controller))
+ break;
}
l = next;